package com.wande.dataplatform.domain.dto;

import lombok.Data;

import java.util.List;

/**
 * 影响分析结果DTO
 *
 * @author wande
 */
@Data
public class ImpactAnalysisDTO {

    /**
     * 目标表ID
     */
    private Long tableId;

    /**
     * 目标表名
     */
    private String tableName;

    /**
     * 变更类型: STRUCTURE_CHANGE, DELETE, RENAME
     */
    private String changeType;

    /**
     * 上游依赖数量
     */
    private Integer upstreamCount;

    /**
     * 下游影响数量
     */
    private Integer downstreamCount;

    /**
     * 受影响的任务列表
     */
    private List<AffectedTask> affectedTasks;

    /**
     * 受影响的API列表
     */
    private List<AffectedApi> affectedApis;

    /**
     * 影响级别: LOW, MEDIUM, HIGH
     */
    private String impactLevel;

    /**
     * 影响描述
     */
    private String impactDescription;

    /**
     * 受影响的任务
     */
    @Data
    public static class AffectedTask {
        private Long taskId;
        private String taskName;
        private String taskType;
        private String impactType;
    }

    /**
     * 受影响的API
     */
    @Data
    public static class AffectedApi {
        private Long apiId;
        private String apiName;
        private String apiPath;
        private String impactType;
    }
}
